The demand for digital imaging products continues to increase. Some examples of applications for digital imaging include video communication, security and surveillance, industrial automation, and entertainment (e.g., DV, HDTV, satellite TV, set-top boxes, Internet video streaming, video gaming devices, digital cameras, cellular telephones, video jukeboxes, high-end displays and personal video recorders). Further, imaging applications are becoming increasingly mobile as a result of higher computation power in handsets, advances in battery technology, and high-speed wireless connectivity.
Image compression, i.e., JPEG and MPEG coding, is an essential enabler for digital video products as it enables the storage and transmission of digital video. JPEG is a commonly used method of lossy compression of image data for digital photography. During encoding, the image data is divided into 8×8 blocks which are then each compressed. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and image quality. JPEG typically achieves 10:1 compression with little perceptible loss in image quality.
JPEG compression is used in a number of image file formats. JPEG/Exif is the most common image format used by digital cameras and other photographic image capture devices; along with JPEG/JFIF, it is the most common format for storing and transmitting photographic images on the World Wide Web. These format variations are often not distinguished, and are simply called JPEG.
The term “JPEG” is an acronym for the Joint Photographic Experts Group which created the standard.
In general, video compression techniques apply prediction, transformation, quantization, and entropy coding to sequential blocks of pixels, i.e., coding blocks, in a video sequence to compress, i.e., encode, the video sequence. A coding block is a subset of a frame or a portion of a frame, e.g., a slice or a block of 64×64 pixels, in a video sequence and a coding block and a frame may be inter-coded or intra-coded. For encoding, a coding block may be divided into prediction blocks, e.g., 4×4, or 8×8 or 16×16 blocks of pixels. Prediction blocks may be inter-coded or intra-coded as well. In an intra-coded coding block, all prediction blocks are intra-coded. In an inter-coded coding block, the prediction blocks may be either intra-coded or inter-coded.